*************************************
************* Load data *************
*************************************

use "${data_out_folder}/wave1_wave2_final", clear

********************************************************
********** CLEANING SPECIFIC TO WAVE 2 *****************
********************************************************

* Share of Americans that fight global warming 
summ fight_gw if wave == 1
gen info_behavior = r(mean)

* Share of Americans that say one should fight global warming 
summ fight_gw_norm if wave == 1
gen info_norm = r(mean)

* Rest of analysis only uses wave 2 data.
keep if wave == 2

*************************************************
********** Additional variables *****************
*************************************************

*  Treatment indicators
gen control_group = (treatment==1)
gen Tr_e = (treatment == 2)
gen Tr_n = (treatment == 3)
la var Tr_e "Behavior treatment "
la var Tr_n "Norms treatment"
la var control_group "Control group"
order Tr_e Tr_n control_group, first

*******  Rescale all beliefs from [0, 100] to [0, 1]
foreach var in belief_behavior belief_norm belief_punish fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6 fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6 {
	replace `var' = `var' / 100.0 if `var' != .
}

*******  Reverse the coding of all policy items such that larger values
*	     mean more support for these policies/actions
local policy_vars support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1 support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11
foreach var in `policy_vars' {
	replace `var' = 5 - `var' if `var' != . 
}

*******  Outcome: Support for policies (z-scored, index)
egen row_missings = rowmiss(support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1)
egen support_policy = rowtotal(support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1) if row_missings==0
drop row_missings

summ support_policy if control_group
replace support_policy = (support_policy - r(mean)) / r(sd)
la var support_policy "Policy support (z-scored)"

*******  Outcome: Support for taking actions (z-scored)
egen row_missings = rowmiss(support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11)
egen support_action = rowtotal(support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11) if row_missings==0
drop row_missings

summ support_action if control_group
replace support_action = (support_action - r(mean)) / r(sd)
la var support_action "Policy action (z-scored)"

*******  Outcome: All policy/action items (z-scored)
egen row_missings = rowmiss(`policy_vars')
egen support_both = rowtotal(`policy_vars') if row_missings==0
drop row_missings
summ support_both if control_group
replace support_both = (support_both - r(mean)) / r(sd)
la var support_both "Support: all items (z-scored)"

*******  z-scored policy support items
foreach var in `policy_vars' {
	qui gen z_`var' = `var'
	qui summ z_`var' if control_group
	qui replace z_`var' = (`var' - r(mean)) / r(sd)
}

*******  Posterior beliefs: Empirical beliefs, first-order normative beliefs, second-order normative beliefs. 

*     Empirical belief
egen row_missings = rowmiss(fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6)
egen posterior_empirical = rowtotal(fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6) if row_missings==0
drop row_missings

summ posterior_empirical if control_group
replace posterior_empirical = (posterior_empirical - r(mean)) / r(sd)
la var posterior_empirical "Posterior: Empirical beliefs (z-scored)"

*     First-order beliefs
egen row_missings = rowmiss(fight_norms_1 fight_norms_2 fight_norms_3 fight_norms_4 fight_norms_5 fight_norms_6)
egen posterior_norms_first = rowtotal(fight_norms_1 fight_norms_2 fight_norms_3 fight_norms_4 fight_norms_5 fight_norms_6) if row_missings==0
drop row_missings

summ posterior_norms_first if control_group
replace posterior_norms_first = (posterior_norms_first - r(mean)) / r(sd)
la var posterior_norms_first "Posterior: 1st order normative beliefs (z-scored)"

*     Second-order beliefs
egen row_missings = rowmiss(fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6)
egen posterior_norms_second = rowtotal(fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6) if row_missings==0
drop row_missings

summ posterior_norms_second if control_group
replace posterior_norms_second = (posterior_norms_second - r(mean)) / r(sd)
la var posterior_norms_second "Posterior: 2st order normative beliefs (z-scored)"

*******  Treatment interacted with prior beliefs 
gen Tr_e_prior = Tr_e * belief_behavior
gen Tr_n_prior = Tr_n * belief_norm
la var Tr_e_prior "Empirical treatment x prior"
la var Tr_n_prior "Normative treatment x prior"

*******  Wedge between information treatment and beliefs 
gen wedge_behavior = belief_behavior - info_behavior
la var wedge_behavior "Wedge: Behavior"
gen wedge_norms = belief_norm - info_norm
la var wedge_norms "Wedge: Norms"

*******  Standardized variables
foreach var in  belief_behavior belief_norm {
	summ `var' if control_group
	gen z_`var' = (`var' - r(mean)) / r(sd)
}

foreach var in std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score relative_universalist_values {
	qui summ `var'
	qui replace `var' = (`var' - r(mean)) / r(sd)
}
la var std_altruism_score "Altruism"
la var std_patience_score "Patience"
la var std_risk_taking_score "Risk"
la var std_pos_rec_score "Pos. reciprocity"
la var std_neg_rec_score "Neg. reciprocity"
la var std_trust_score "Trust"

* binary interaction variables
capture drop low_trust disagree no_worries no_harm human_caused nature_caused
gen low_trust = trust_science >= 3
gen disagree = science_consensus !=1
gen no_worries = worry >= 3
gen no_harm = harm <=2
gen human_caused = (know_cause == 1)
gen nature_caused = (know_cause == 2)

la var low_trust "Low trust in science"
la var disagree "No scientific consensus"
la var no_worries "Not concerned"
la var no_harm "No harm"
la var nature_caused "Nature-caused"



*****************************************************************************
*********************  STATEMENTS IN TEXT ***********************************
*****************************************************************************

* Median duration
summ Durationinseconds , detail
local median_duration = r(p50) / 60
di "Wave 2 median duration: `median_duration' minutes"

* Assuming full updating of beliefs, how many standard deviations do beliefs change?
* Change = average belief wedge divided by the standard deviation of beliefs in control
summ belief_behavior if control_group
gen full_update_behavior = wedge_behavior / r(sd)

summ belief_norm if control_group
gen full_update_norm = wedge_norm / r(sd)

summ full_update_*
drop full_update_behavior full_update_norm

* Share of people who can increase their donation by at leat 25 dollars in the control group
gen can_increase = donation <= 425
summ can_increase if control_group & !low_trust
summ can_increase if control_group & !disagree
summ can_increase if control_group & !no_harm
summ can_increase if control_group & !no_worries
summ can_increase if control_group & !nature_caused
drop can_increase

* extensive vs intensive margin
gen donation_pos = donation > 0 if !missing(donation)
reg donation_pos Tr_e Tr_n $controls, r



*****************************************************************************
*********************       EXHIBITS      ***********************************
*****************************************************************************


**************************************************************
*** Table 2: Treatment effects on climate donations and posterior beliefs ***
**************************************************************

eststo clear
foreach var in donation posterior_empirical posterior_norms_second {
	eststo : reg `var' Tr_e Tr_n $controls, r
	qui summ `var' if control_group
	estadd scalar control_mean = round(r(mean), 0.001)

	test (Tr_e = Tr_n)

}
estadd local c1 "Yes", replace : _all
estadd local c1 "No", replace : est1
estadd local c2 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_2.tex", replace keep(Tr_*) se b(3) label starlevels(* 0.1 ** 0.05 *** 0.01) nobase stats(N control_mean c1 c2, label("N" "Control group mean" "z-scored" "Controls") fmt(%9.0fc a4)) mtitles("Donation (\\$)" "Behavior belief {(post.)}" "Norms belief {(post.)}") booktabs fragment

**************************************************************
*** Table 3: Treatment effect heterogeneity: Prior above/below actual share ***
**************************************************************

* with controls
eststo clear
foreach var in donation {
	* Prior below
	eststo : reg `var' Tr_e $controls if wedge_behavior < 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior < 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	eststo : reg `var' Tr_n $controls if wedge_norms < 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms < 0  
	qui estadd scalar control_mean = round(r(mean), 0.001)

	* Prior above
	eststo : reg `var' Tr_e $controls if wedge_behavior >= 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior >= 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	eststo : reg `var' Tr_n $controls if wedge_norms >= 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms >= 0  
	qui estadd scalar control_mean = round(r(mean), 0.001)
}
estadd local c1 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_3.tex", replace keep(Tr_e Tr_n) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N control_mean c1, label("N" "Control group mean" "Controls") fmt(%9.0fc %9.2fc)) se b(3) nomtitles label mgroup("Prior \begin{math}< \end{math} actual share" "Prior \begin{math}\geq \end{math} actual share", pattern(1 0 1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span}))  booktabs fragment coeflabel(Tr_e "Behavior treatment" Tr_n "Norms treatment") prehead("&\multicolumn{@M}{c}{Dependent variable: Donation (\\$)}\\\cmidrule(lr){2-@span}")

**************************************************************
*** Table 4: Treatment effects on support for policies and actions to fight global warming ***
**************************************************************

eststo clear
foreach var in support_policy  support_action support_both {
	qui eststo : reg `var' Tr_e Tr_n $controls, r
}
estadd local c1 "Yes", replace : _all
estadd local c2 "Yes", replace : _all
esttab * using "${out_folder}/tables/tab_4.tex", replace  keep(Tr_*) se b(3) label starlevels(* 0.1 ** 0.05 *** 0.01) nobase stats(N c1 c2, label("N" "z-scored" "Controls") fmt(%9.0fc a4)) mtitles("Policies" "Activism" "All")  booktabs fragment 

**************************************************************
*** Figure 3: Treatment effect heterogeneity by climate change skepticism ***
**************************************************************

local stars_behavior
local stars_norms
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	* drop temp variables
	capture drop Tr_e_0 Tr_e_1
	capture drop  Tr_n_0 Tr_n_1
	gen Tr_e_0 = Tr_e * (`var' == 0)
	gen Tr_e_1 = Tr_e * (`var' == 1)
	gen Tr_n_0 = Tr_n * (`var' == 0)
	gen Tr_n_1 = Tr_n * (`var' == 1)

	qui eststo `var': reg donation Tr_e_0 Tr_e_1 Tr_n_0 Tr_n_1 `var' $controls, r
	qui test (Tr_e_0 = Tr_e_1)
	local pval = r(p)

	if `pval' < 0.01 {
		local stars_behavior `stars_behavior' ***
	}
	else if `pval' < 0.05 {
		local stars_behavior `stars_behavior' **
	}
	else if `pval' < 0.1 {
		local stars_behavior `stars_behavior' *
	}
	else {
		local stars_behavior `stars_behavior' n.s.
	}

	qui test (Tr_n_0 = Tr_n_1)
	local pval = r(p)

	if `pval' < 0.01 {
		local stars_norms `stars_norms' ***
	}
	else if `pval' < 0.05 {
		local stars_norms `stars_norms' **
	}
	else if `pval' < 0.1 {
		local stars_norms `stars_norms' *
	}
	else {
		local stars_norms `stars_norms' n.s.
	}
}

local i = 0
foreach star of local stars_behavior {
	di "`star'"
	local i = `i' + 1
	local plot_1_coef_`i' "`star'"
}

local i = 0
foreach star of local stars_norms {
	di "`star'"
	local i = `i' + 1
	local plot_2_coef_`i' "`star'"
}

coefplot (low_trust disagree no_worries no_harm nature_caused, keep(Tr_e_0) label(Yes) msymbol(d) mcolor(navy) ciopts(lwidth(0.6) lcolor(navy))) (low_trust disagree no_worries no_harm nature_caused, keep(Tr_e_1) label(No)  msymbol(o) mlwidth(0.6) mcolor(maroon) ciopts(lwidth(0.6) lcolor(maroon))), bylabel("{bf: Panel A}: Behavior treatment")  || (low_trust disagree no_worries no_harm nature_caused, keep(Tr_n_0) label(Yes) msymbol(d) mcolor(navy) ciopts(lwidth(0.6) lcolor(navy))) (low_trust disagree no_worries no_harm nature_caused, keep(Tr_n_1) label(No)  msymbol(o) mlwidth(0.6) mcolor(maroon) ciopts(lwidth(0.6) lcolor(maroon))), bylabel("{bf: Panel B}: Norms treatment") || ,  xline(0, lcolor(gs6) lpattern(dash)) swapnames aseq eqrename(low_trust = "Trust in science?" disagree = "Scientific consensus about global warming?" no_worries = "Worried about global warming?" no_harm = "Global warming is a threat?" nature_caused = "Global warming is human-caused?") coeflabels(, wrap(30)) name(behavior, replace) xsize(6) ysize(3)  legend(col(2)) xtitle("Donations ($)", size(medlarge)) ylab(, labsize(large)) xlab(, labsize(large)) subtitle(, size(vlarge)) msize(3.5)

* Add text to the subgraphs
addplot 1: , text(1 55 "`plot_1_coef_1'",  size(large)) text(2 55 "`plot_1_coef_2'", size(large)) text(3 55 "`plot_1_coef_3'", size(large)) text(4 55 "`plot_1_coef_4'", size(large)) text(5 55 "`plot_1_coef_5'", size(large)) legend(order(2 "Yes (believes in climate change)"  4 "No (skeptical of climate change)") size(large))  norescaling
addplot 2: , text(1 55 "`plot_2_coef_1'",  size(large)) text(2 55 "`plot_2_coef_2'", size(large)) text(3 55 "`plot_2_coef_3'", size(large)) text(4 55 "`plot_2_coef_4'", size(large)) text(5 55 "`plot_2_coef_5'", size(large)) legend(order(2 "Yes"  4 "No") size(large))  norescaling

* Save figure
graph display , xsize(6) ysize(3) scale(1)
graph export "${out_folder}/figures/fig_3.pdf", replace xsize(6) ysize(3)



**************************************************************************************************
**************						Appendix										**************
**************************************************************************************************


**************************************************************
*** Table A.7: Test of balance ***
**************************************************************

local gps_vars std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score

preserve 
	* Recode belief to 0-100 for the table
	replace belief_behavior = belief_behavior * 100.0 if belief_behavior != .
	replace belief_norm = belief_norm * 100.0 if belief_norm != .

	* Empirical vs Controls
	qui reg Tr_e $controls some_children relative_universalist_values $priors `gps_vars' if !Tr_n, r
	qui testparm $controls some_children relative_universalist_values $priors `gps_vars'
	local joint_F_T1_C : di %5.3f r(p)

	* Normative vs Control
	qui reg Tr_n $controls some_children relative_universalist_values $priors `gps_vars' if !Tr_e, r
	qui testparm $controls some_children relative_universalist_values $priors `gps_vars'
	local joint_F_T2_C : di %5.3f r(p)

	* Empirical vs Normative
	qui reg Tr_n $controls some_children relative_universalist_values $priors `gps_vars' if !control_group, r
	qui testparm $controls some_children relative_universalist_values $priors `gps_vars'
	local joint_F_T2_T1 : di %5.3f r(p)

	* Generate LaTeX balance table
	balancetable (mean if treatment==1) (mean if treatment==2) (mean if treatment==3) (diff Tr_e if treatment!=3) (diff Tr_n if treatment!=2) (diff Tr_e if treatment!=1) $priors `gps_vars' relative_universalist_values $controls some_children using "${out_folder}/tables/tab_A7.tex", replace pvalues varlabels booktabs starlevels(* 0.1 ** 0.05 *** 0.01) ctitles("\shortstack{Control\\ group (C)}" "\shortstack{Behavior\\ treatment (T\begin{math}_1\end{math})}" "\shortstack{Norms\\ treatment (T\begin{math}_2\end{math})}" "T\begin{math}_1\end{math} - C" "T\begin{math}_2\end{math} - C" "T\begin{math}_2\end{math} - T\begin{math}_1\end{math}") prefoot("& & & & & & \\ \textit{p}-value of joint \textit{F}-test & & & & `joint_F_T1_C' & `joint_F_T2_C' & `joint_F_T2_T1'  \\ & & & & & & \\ \hline") groups("Means (std. dev.)" "Differences (\textit{p}-values)", pattern(1 0 0 1 0 0) end("\cmidrule(lr){2-4} \cmidrule(lr){5-7}")) nonumber leftctitle(" ")
restore 


**************************************************************
*** Table A.8: Treatment effects on climate donations and posterior beliefs: No controls ***
**************************************************************
eststo clear
foreach var in donation posterior_empirical posterior_norms_second {
	qui eststo : reg `var' Tr_e Tr_n, r
	qui summ `var' if control_group
	estadd scalar control_mean = round(r(mean), 0.001)

}
estadd local c1 "Yes", replace : _all
estadd local c1 "No", replace : est1

esttab * using "${out_folder}/tables/tab_A8.tex", replace se b(3) label starlevels(* 0.1 ** 0.05 *** 0.01) nobase keep(Tr_*) stats(N control_mean c1, label("N" "Control group mean" "z-scored") fmt(%9.0fc a4)) mtitles("Donation (\\$)" "Behavior belief {(post.)}" "Norms belief {(post.)}") booktabs fragment


**************************************************************
*** Figure A.8: Heterogeneity by "climate change skeptics": Political outcomes ***
**************************************************************

foreach outcome in support_policy support_action support_both {
	local stars_behavior
	local stars_norms

	* Generate new figure for each outcome
	eststo clear
	foreach var in low_trust disagree no_worries no_harm nature_caused {
		* drop temp variables
		capture drop Tr_e_0 Tr_e_1
		capture drop  Tr_n_0 Tr_n_1
		gen Tr_e_0 = Tr_e * (`var' == 0)
		gen Tr_e_1 = Tr_e * (`var' == 1)
		gen Tr_n_0 = Tr_n * (`var' == 0)
		gen Tr_n_1 = Tr_n * (`var' == 1)

		qui eststo `var': reg `outcome' Tr_e_0 Tr_e_1 Tr_n_0 Tr_n_1 `var' $controls, r

		* For stars in the figure
		qui test (Tr_e_0 = Tr_e_1)
		local pval = r(p)

		if `pval' < 0.01 {
			local stars_behavior `stars_behavior' ***
		}
		else if `pval' < 0.05 {
			local stars_behavior `stars_behavior' **
		}
		else if `pval' < 0.1 {
			local stars_behavior `stars_behavior' *
		}
		else {
			local stars_behavior `stars_behavior' n.s.
		}

		qui test (Tr_n_0 = Tr_n_1)
		local pval = r(p)

		if `pval' < 0.01 {
			local stars_norms `stars_norms' ***
		}
		else if `pval' < 0.05 {
			local stars_norms `stars_norms' **
		}
		else if `pval' < 0.1 {
			local stars_norms `stars_norms' *
		}
		else {
			local stars_norms `stars_norms' n.s.
		}

	}

	local i = 0
	foreach star of local stars_behavior {
		di "`star'"
		local i = `i' + 1
		local plot_1_coef_`i' "`star'"
	}

	local i = 0
	foreach star of local stars_norms {
		di "`star'"
		local i = `i' + 1
		local plot_2_coef_`i' "`star'"
	}

	coefplot (low_trust disagree no_worries no_harm nature_caused, keep(Tr_e_0) label(Yes) msymbol(d) mcolor(navy) ciopts(lcolor(navy))) (low_trust disagree no_worries no_harm nature_caused, keep(Tr_e_1) label(No)  msymbol(o) mcolor(maroon) ciopts(lcolor(maroon))),  xline(0, lcolor(gs6) lpattern(dash)) legend(pos(6) rows(1)) swapnames aseq eqrename(low_trust = "Trust in science?" disagree = "Scientific consensus about global warming?" no_worries = "Worried about global warming?" no_harm = "Global warming is a threat?" nature_caused = "Global warming is human-caused?") xtitle("Standard deviations", size(medium)) title("Behavior treatment", size(medium)) coeflabels(, wrap(15)) name(`outcome'_behavior, replace) xlab(-.1(0.1).3, labsize(medium)) xsize(3) ysize(2) ylab(, labsize(medium))

	addplot `outcome'_behavior: , text(1 0.25 "`plot_1_coef_1'",  size(medium)) text(2 0.25 "`plot_1_coef_2'", size(medium)) text(3 0.25 "`plot_1_coef_3'", size(medium)) text(4 0.25 "`plot_1_coef_4'", size(medium)) text(5 0.25 "`plot_1_coef_5'", size(medium)) legend(order(2 "Yes"  4 "No") size(medium))  norescaling


	coefplot (low_trust disagree no_worries no_harm nature_caused, keep(Tr_n_0) label(Yes) msymbol(d) mcolor(navy) ciopts(lcolor(navy))) (low_trust disagree no_worries no_harm nature_caused, keep(Tr_n_1) label(No)  msymbol(o) mcolor(maroon) ciopts(lcolor(maroon))),  xline(0, lcolor(gs6) lpattern(dash)) legend(pos(6) rows(1)) swapnames aseq eqrename(low_trust = "Trust in science?" disagree = "Scientific consensus about global warming?" no_worries = "Worried about global warming?" no_harm = "Global warming is a threat?" nature_caused = "Global warming is human-caused?") xtitle("Standard deviations", size(medium)) title("Norms treatment", size(medium)) coeflabels(, wrap(15)) name(`outcome'_norms, replace) xlab(-.1(0.1).3, labsize(medium)) xsize(3) ysize(2) ylab(, labsize(medium))

	addplot `outcome'_norms: , text(1 0.25 "`plot_2_coef_1'",  size(medium)) text(2 0.25 "`plot_2_coef_2'", size(medium)) text(3 0.25 "`plot_2_coef_3'", size(medium)) text(4 0.25 "`plot_2_coef_4'", size(medium)) text(5 0.25 "`plot_2_coef_5'", size(medium)) legend(order(2 "Yes"  4 "No") size(medium))  norescaling
}

graph combine support_policy_behavior support_policy_norms , title("{bf: Panel A:} Policies") name(panelA, replace) cols(2) xsize(6) ysize(2) imargin(0 0 0 0)
graph combine support_action_behavior support_action_norms , title("{bf: Panel B:} Activism") name(panelB, replace) cols(2)  xsize(6) ysize(2) imargin(0 0 0 0)
graph combine support_both_behavior support_both_norms , title("{bf: Panel C:} Both") name(panelC, replace) cols(2)  xsize(6) ysize(2) imargin(0 0 0 0)
graph combine panelA panelB panelC, row(3) name(combined, replace) xsize(6) ysize(9) imargin(0 0 0 0)

set graphics on
graph display combined 

* Save Figure A.8
graph export "${out_folder}/figures/fig_A8.pdf", replace



**************************************************************
*** Figure A.6: Wedge in beliefs about social norms ***
**************************************************************

preserve 
	replace wedge_behavior = wedge_behavior * 100.0
	replace wedge_norms = wedge_norms * 100.0

	* Panel A
	twoway (histogram wedge_behavior, xtitle("Wedge (guess % - actual %)", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(10)) (scatteri 0 0 25 0, recast(line) lpattern(dash) lwidth(0.5) lc(maroon)), title("{bf: Panel A:} Behavior belief", size(medium)) xlab(-80(20)40, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium)) name(panelA, replace) ymtick(##5) legend(off) xsize(3) ysize(3)

	* Panel B
	twoway (histogram wedge_norms, xtitle("Wedge (guess % - actual %)", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(10)) (scatteri 0 0 25 0, recast(line) lpattern(dash) lwidth(0.5) lc(maroon)), title("{bf: Panel B:} Norms belief", size(medium)) xlab(-80(20)40, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium)) name(panelB, replace) ymtick(##5) legend(off) xsize(3) ysize(3)
	 
	graph combine panelA panelB, xcommon ycommon xsize(6) ysize(3) scale(1.75)
	graph export "${out_folder}/figures/fig_A6.pdf", replace
restore



**************************************************************
*** Table A.14: Treatment effect heterogeneity: Climate change “skeptics” ***
**************************************************************

* Panel A
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	* drop temp variables
	capture drop interactant Tr_interactant
	gen interactant = `var'
	gen Tr_interactant = interactant * Tr_e

	qui eststo `var': reg donation Tr_e Tr_interactant interactant $controls if !Tr_n, r
	qui xlincom (maineffect = Tr_e + Tr_interactant), repost
	eststo `var'
}
estadd local c1 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A14.tex", replace  keep(Tr_e Tr_interactant interactant maineffect) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1, label("N" "Controls") fmt(%9.0fc)) se b(3) mtitles("\shortstack{No trust\\ in science}" "\shortstack{No scientific\\ consensus}" "\shortstack{Not\\ concerned}" "\shortstack{Not a \\ threat}" "\shortstack{Caused by\\ nature}") label booktabs fragment coeflabel(Tr_e "Treatment (a)" Tr_interactant "Treatment x Interactant (b)" interactant "Interactant" _cons "Constant" maineffect "Linear combination (a + b)") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel)  mgroup("Interactant:", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) eqlabels("" "", span) prehead("&\multicolumn{@M}{c}{Dependent variable: Donation (\\$)}\\\cmidrule(lr){2-@span}")

* Panel B
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	* drop temp variables
	capture drop interactant Tr_interactant
	gen interactant = `var'
	gen Tr_interactant = interactant * Tr_n

	qui eststo `var': reg donation Tr_n Tr_interactant interactant $controls if !Tr_e, r
	qui xlincom (maineffect = Tr_n + Tr_interactant), repost
	eststo `var'
}
estadd local c1 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A14.tex", append keep(Tr_n Tr_interactant interactant maineffect) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1, label("N" "Controls") fmt(%9.0fc)) se b(3) label booktabs fragment coeflabel(Tr_n "Treatment (a)" Tr_interactant "Treatment x Interactant (b)" interactant "Interactant" _cons "Constant" maineffect "Linear combination (a + b)") refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber eqlabels("" "", span)



**************************************************************
*** Table A.15: Treatment effect heterogeneity: Climate change "skeptics" -- Robustness to controlling for the interaction between treatment and prior beliefs ***
**************************************************************

* Panel A
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	* drop temp variables
	capture drop interactant Tr_interactant
	gen interactant = `var'
	gen Tr_interactant = interactant * Tr_e

	qui eststo `var': reg donation Tr_e Tr_interactant interactant $controls belief_behavior Tr_e_prior if !Tr_n, r
	qui xlincom (maineffect = Tr_e + Tr_interactant), repost
	eststo `var'
}
estadd local c1 "Yes", replace : _all
estadd local c2 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A15.tex", replace keep(Tr_e Tr_interactant interactant maineffect) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1 c2, label("N" "Controls" "Treatment x Prior") fmt(%9.0fc)) se b(3) mtitles("\shortstack{No trust\\ in science}" "\shortstack{No scientific\\ consensus}" "\shortstack{Not\\ concerned}" "\shortstack{Not a \\ threat}" "\shortstack{Caused by\\ nature}") label booktabs fragment coeflabel(Tr_e "Treatment (a)" Tr_interactant "Treatment x Interactant (b)" interactant "Interactant" _cons "Constant" maineffect "Linear combination (a + b)") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel)  mgroup("Interactant:", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) eqlabels("" "", span) prehead("&\multicolumn{@M}{c}{Dependent variable: Donation (\\$)}\\\cmidrule(lr){2-@span}")

* Panel B
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	* drop temp variables
	capture drop interactant Tr_interactant
	gen interactant = `var'
	gen Tr_interactant = interactant * Tr_n

	qui eststo `var': reg donation Tr_n Tr_interactant interactant $controls belief_norm Tr_n_prior if !Tr_e, r
	qui xlincom (maineffect = Tr_n + Tr_interactant), repost
	eststo `var'
}

estadd local c1 "Yes", replace : _all
estadd local c2 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A15.tex", append keep(Tr_n Tr_interactant interactant maineffect) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1 c2, label("N" "Controls" "Treatment x Prior") fmt(%9.0fc)) se b(3) label booktabs fragment coeflabel(Tr_n "Treatment (a)" Tr_interactant "Treatment x Interactant (b)" interactant "Interactant" _cons "Constant" maineffect "Linear combination (a + b)") refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber eqlabels("" "", span)



**************************************************************
*** Table A.11: Treatment effect heterogeneity by political affiliation ***
**************************************************************

capture drop Tr_democrat
gen Tr_democrat = democrat * Tr_e

* Panel A
eststo clear
foreach var in donation support_policy support_action {
	qui eststo `var': reg `var' Tr_e Tr_democrat democrat if !Tr_n, r
}
estadd local c1 "No", replace : _all

esttab * using "${out_folder}/tables/tab_A11.tex", replace  keep(Tr_e Tr_democrat democrat) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1, label("N" "Controls") fmt(%9.0fc)) se b(3) mtitles("Donation (\\$)" "Policy support" "Support activism") label booktabs fragment coeflabel(Tr_e "Treatment" Tr_democrat "Treatment x Democrat" democrat "Democrat" _cons "Constant") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel)  mgroup("Dependent variable:", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) eqlabels("" "", span)

* Panel B
capture drop Tr_democrat
gen Tr_democrat = democrat * Tr_n

eststo clear
foreach var in donation support_policy support_action {
	qui eststo `var': reg `var' Tr_n Tr_democrat democrat if !Tr_e, r
}
estadd local c1 "No", replace : _all

esttab * using "${out_folder}/tables/tab_A11.tex", append keep(Tr_n Tr_democrat democrat) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1, label("N" "Controls") fmt(%9.0fc)) se b(3) label booktabs fragment coeflabel(Tr_n "Treatment" Tr_democrat "Treatment x Democrat" democrat "Democrat" _cons "Constant") refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber eqlabels("" "", span)


**************************************************************
*** Table A.12: Treatment effect heterogeneity by political affiliation: Robustness to prior x treatment interaction ***
**************************************************************

capture drop Tr_democrat
gen Tr_democrat = democrat * Tr_e

* Panel A
eststo clear

foreach var in donation support_policy support_action {
	eststo `var': reg `var' Tr_e Tr_democrat $controls belief_behavior Tr_e_prior if !Tr_n, r
}
estadd local c1 "Yes", replace : _all
estadd local c2 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A12.tex", replace  keep(Tr_e Tr_democrat democrat) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1 c2, label("N" "Controls" "Treatment x Prior") fmt(%9.0fc)) se b(3) mtitles("Donation (\\$)" "Policy support" "Support activism") label booktabs fragment coeflabel(Tr_e "Treatment" Tr_democrat "Treatment x Democrat" democrat "Democrat" _cons "Constant") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel)  mgroup("Dependent variable:", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) eqlabels("" "", span)

* Panel B
capture drop Tr_democrat
gen Tr_democrat = democrat * Tr_n

eststo clear
foreach var in donation support_policy support_action {
	eststo `var': reg `var' Tr_n Tr_democrat $controls belief_norm Tr_n_prior if !Tr_e, r
}
estadd local c1 "Yes", replace : _all
estadd local c2 "Yes", replace : _all

esttab * using "${out_folder}/tables/tab_A12.tex", append keep(Tr_n Tr_democrat democrat) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N c1 c2, label("N" "Controls" "Treatment x Prior") fmt(%9.0fc)) se b(3) label booktabs fragment coeflabel(Tr_n "Treatment" Tr_democrat "Treatment x Democrat" democrat "Democrat" _cons "Constant") refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber eqlabels("" "", span)



**************************************************************
*** Table A.13: Baseline differences in donations: "Climate change skeptics" ***
**************************************************************

capture drop age_squared
gen age_squared = age * age

* Panel A
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	qui eststo: reg donation `var' if control_group, r
}

esttab * using "${out_folder}/tables/tab_A13.tex", replace  keep(low_trust disagree no_worries no_harm nature_caused _cons) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N, label("N") fmt(%9.0fc)) se b(3) nomtitles booktabs fragment coeflabel(low_trust "No trust in science" disagree "No scientific consensus" no_worries "Not concerned" no_harm "Not a threat" nature_caused "Caused by nature" _cons "Constant") refcat(low_trust " \textbf{Panel A: No controls}", nolabel)  mgroup("Dependent variable: Donation (\\$)", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span}))

* Panel B
eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	qui eststo: reg donation `var' z_belief_behavior z_belief_norm std_altruism_score  std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score relative_universalist_values democrat age age_squared female log_income college employed some_children if control_group, r
}

esttab * using "${out_folder}/tables/tab_A13.tex", append keep(low_trust disagree no_worries no_harm nature_caused  _cons)  starlevels(* 0.1 ** 0.05 *** 0.01) stats(N, label("N") fmt(%9.0fc)) se b(3) label booktabs fragment coeflabel(low_trust "No trust in science" disagree "No scientific consensus" no_worries "Not concerned" no_harm "Not a threat" nature_caused "Caused by nature" _cons "Constant") refcat(low_trust " \textbf{Panel B: Controls}", nolabel) nomtitles collabels(none) nonumber eqlabels("" "", span)



**************************************************************
*** Figure A.7: Treatment effect heterogeneity by perceived social norms: Non-parametric estimates ***
**************************************************************

graph drop _all
interflex donation Tr_e belief_behavior if !Tr_n, vce(robust) xlab("Behavior belief") dlab(information) ylab("donations") title("Behavior treatment") type(kernel) xdistr(density)
graph rename behavior, replace

interflex donation Tr_n belief_norm if !Tr_e, vce(robust) xlab("Norms belief") dlab(information) ylab("donations") title("Norms treatment") type(kernel) xdistr(density)
graph rename norms, replace

graph combine behavior norms, col(2) 
graph export "${out_folder}/figures/fig_A7.pdf", replace


**************************************************************
*** Table A.18: Treatment effect heterogeneity for political outcomes: Prior above/below actual share ***
**************************************************************

* Panel A
eststo clear
foreach var in support_policy support_action support_both {
	* Prior below
	qui eststo `var'_below: reg `var' Tr_e $controls if wedge_behavior < 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior < 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	* Prior above
	qui eststo `var'_above: reg `var' Tr_e $controls if wedge_behavior >= 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior >= 0
	qui estadd scalar control_mean = round(r(mean), 0.001)
}
estadd local c1 "Yes", replace : _all

esttab support_policy_below support_action_below support_both_below support_policy_above support_action_above support_both_above using "${out_folder}/tables/tab_A18.tex", replace keep(Tr_e) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N control_mean c1, label("N" "Control group mean" "Controls") fmt(%9.0fc %9.2fc)) se b(3) mtitles("Policies" "Activism" "Both" "Policies" "Activism" "Both") label mgroup("Prior below actual share" "Prior above actual share", pattern(1 0 0 1 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span}))  booktabs fragment coeflabel(Tr_e "Behavior treatment" Tr_n "Norms treatment") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel) 

* Panel B
eststo clear
foreach var in support_policy support_action support_both {
	* Prior below
	qui eststo `var'_below: reg `var' Tr_n $controls if wedge_norms < 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms < 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	* Prior above
	qui eststo `var'_above: reg `var' Tr_n $controls if wedge_norms >= 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms >= 0
	qui estadd scalar control_mean = round(r(mean), 0.001)
}

estadd local c1 "Yes", replace : _all

esttab support_policy_below support_action_below support_both_below support_policy_above support_action_above support_both_above using "${out_folder}/tables/tab_A18.tex", append keep(Tr_n) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N control_mean c1, label("N" "Control group mean" "Controls") fmt(%9.0fc %9.2fc)) se b(3) label booktabs fragment refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber



**************************************************************
*** Table A.9: Treatment effect heterogeneity for post-treatment beliefs: Prior above/below actual share ***
**************************************************************

* Panel A
eststo clear
foreach var in posterior_empirical posterior_norms_second {
	* Prior below
	qui eststo `var'_b: reg `var' Tr_e $controls if wedge_behavior < 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior < 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	* Prior above
	qui eststo `var'_a: reg `var' Tr_e $controls if wedge_behavior >= 0 & !Tr_n, r
	qui summ `var' if control_group & wedge_behavior >= 0
	qui estadd scalar control_mean = round(r(mean), 0.001)
}
estadd local c1 "Yes", replace : _all

esttab posterior_empirical_b posterior_norms_second_b posterior_empirical_a posterior_norms_second_a using "${out_folder}/tables/tab_A9.tex", replace keep(Tr_e) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N control_mean c1, label("N" "Control group mean" "Controls") fmt(%9.0fc %9.2fc)) se b(3) mtitles("Behavior belief {(post.)}" "Norms belief {(post.)}" "Behavior belief {(post.)}" "Norms belief {(post.)}") label mgroup("Prior below actual share" "Prior above actual share", pattern(1 0 1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span}))  booktabs fragment coeflabel(Tr_e "Behavior treatment" Tr_n "Norms treatment") refcat(Tr_e " \textbf{Panel A: Behavior treatment}", nolabel) 

* Panel B
eststo clear
foreach var in posterior_empirical posterior_norms_second {
	* Prior below
	qui eststo `var'_b: reg `var' Tr_n $controls if wedge_norms < 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms < 0
	qui estadd scalar control_mean = round(r(mean), 0.001)

	* Prior above
	qui eststo `var'_a: reg `var' Tr_n $controls if wedge_norms >= 0 & !Tr_e, r
	qui summ `var' if control_group & wedge_norms >= 0
	qui estadd scalar control_mean = round(r(mean), 0.001)
}
estadd local c1 "Yes", replace : _all

esttab posterior_empirical_b posterior_norms_second_b posterior_empirical_a posterior_norms_second_a using "${out_folder}/tables/tab_A9.tex", append keep(Tr_n) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N control_mean c1, label("N" "Control group mean" "Controls") fmt(%9.0fc %9.2fc)) se b(3) label booktabs fragment refcat(Tr_n " \textbf{Panel B: Norms treatment}", nolabel) nomtitles collabels(none) nonumber



**************************************************************
*** Table A.10: Treatment effect heterogeneity for post-treatment beliefs: Median-split by prior beliefs among respondents with prior belief below the actual share ***
**************************************************************

summ belief_behavior if wedge_behavior < 0, de
gen belief_behavior_p50 = (belief_behavior <= r(p50))
la var belief_behavior_p50 "Prior below median"

summ belief_norm if wedge_norm < 0, de
gen belief_norm_p50 = (belief_norm <= r(p50))
la var belief_norm_p50 "Prior below median"

eststo clear
qui eststo: reg posterior_empirical i.Tr_e##i.belief_behavior_p50 $controls if wedge_behavior < 0 & !Tr_n, r
qui summ posterior_empirical if control_group & wedge_behavior < 0

qui eststo: reg posterior_norms_second i.Tr_n##i.belief_norm_p50 $controls if wedge_norms < 0 & !Tr_e, r
qui summ posterior_empirical if control_group & wedge_norms < 0

estadd local c1 "Yes", replace : _all
esttab * using "${out_folder}/tables/tab_A10.tex", replace se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) keep(*Tr_e *Tr_n *belief_behavior_p50 *belief_norm_p50) varwidth(50) label mtitles("Behavior belief {(post.)}" "Norms belief {(post.)}") gaps coeflabel(1.Tr_e "Behavior treatment" 1.Tr_n "Norms treatment" 1.Tr_n#1.belief_norm_p50 "Norms treatment x Low norms prior" 1.Tr_e#1.belief_behavior_p50 "Behavior treatment x Low behavior prior" 1.belief_behavior_p50 "Low behavior prior" 1.belief_norm_p50 "Low norms prior") nobase noomitted stats(N c1, label("N" "Controls") fmt(%9.0fc %9.2fc)) booktabs fragment

************
*** STATEMENT IN TEXT: Test if treatment more effective for low altruism, low patience and low universalm respondents
*************
* Generate binary indicators
capture drop low_patience_score low_altruism_score low_relative_universalist_values
foreach var in patience_score altruism_score relative_universalist_values  {
	summ `var', detail
	gen low_`var' = `var' < r(p50)
}
rename low_relative_universalist_values low_rel_univeralism

eststo clear
foreach var in low_patience_score low_altruism_score low_rel_univeralism {
	* drop temp variables
	capture drop Tr_e_0 Tr_e_1
	capture drop  Tr_n_0 Tr_n_1
	qui gen Tr_e_0 = Tr_e * (`var' == 0)
	qui gen Tr_e_1 = Tr_e * (`var' == 1)
	qui gen Tr_n_0 = Tr_n * (`var' == 0)
	qui gen Tr_n_1 = Tr_n * (`var' == 1)
	qui eststo `var': reg donation Tr_e_0 Tr_e_1 Tr_n_0 Tr_n_1 `var' $controls, r
}
* for statements in the text
esttab * , se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) keep(Tr_*) mtitles("Patience" "Altruism" "Universalism") coeflabels(Tr_e_0 "Low x Behavior treatment" Tr_e_1 "High x Behavior treatment" Tr_n_0 "Low x Norms treatment" Tr_n_1 "High x Norms treatment")
rename  low_rel_univeralism low_relative_universalist_values


**************************************************************
*** Table A.17: Treatment effect heterogeneity for moral universalism ***
**************************************************************

capture drop z_relative_universalist_values
summ relative_universalist_values if control_group, de
gen z_relative_universalist_values  = (relative_universalist_values  - r(mean)) / r(sd)
gen Tr_e_denier = Tr_e * nature_caused 
gen Tr_e_universalism = Tr_e * z_relative_universalist_values
gen Tr_n_denier = Tr_n * nature_caused 
gen Tr_n_universalism = Tr_n * z_relative_universalist_values

* treatment effect heterogeneity by moral values
eststo clear
qui eststo: reg donation Tr_e $controls Tr_e_universalism z_relative_universalist_values if !Tr_n, r
qui eststo: reg donation Tr_e $controls Tr_e_universalism z_relative_universalist_values Tr_e_prior belief_behavior if !Tr_n, r
qui eststo: reg donation Tr_e $controls Tr_e_universalism z_relative_universalist_values Tr_e_prior belief_behavior Tr_e_denier nature_caused if !Tr_n, r
qui eststo: reg donation Tr_n $controls Tr_n_universalism z_relative_universalist_values if !Tr_e, r
qui eststo: reg donation Tr_n $controls Tr_n_universalism z_relative_universalist_values Tr_n_prior belief_norm if !Tr_e, r
qui eststo: reg donation Tr_n $controls Tr_n_universalism z_relative_universalist_values Tr_n_prior belief_norm Tr_n_denier nature_caused if !Tr_e, r

estadd local controls "Yes" : _all

esttab * using "${out_folder}/tables/tab_A17.tex" , replace booktabs fragment  se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) nobase noomitted drop(_cons $controls belief_norm belief_behavior nature_caused) varwidth(30) nomtitles label coeflabel(Tr_e_universalism "Behavior treatment x Moral universalism" Tr_e_prior "Behavior treatment x Behavior belief" Tr_e_denier "Behavior treatment x Skeptic" z_relative_universalist_values "Moral universalism" Tr_n_universalism "Norms treatment x Moral universalism" Tr_n_prior "Norms treatment x Norms belief" Tr_n_denier "Norms treatment x Skeptic") stats(N controls, labels("N" "Controls") fmt(%9.0fc %9.3fc)) order(Tr_e Tr_n Tr_e_universalism Tr_n_universalism Tr_e_prior Tr_n_prior Tr_e_denier Tr_n_denier z_relative_universalist_values belief_behavior belief_norm   nature_caused) mgroup("Dependent variable: Donations (\\$)", pattern(1 0 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span}))


**************************************************************
*** Table A.16: Moral universalism and climate change skepticism ***
**************************************************************

eststo clear
foreach var in low_trust disagree no_worries no_harm nature_caused {
	eststo: reg relative_universalist_values `var' if control_group, r
}
esttab * using "${out_folder}/tables/tab_A16.tex", replace se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) drop(_cons) label nomtitles mgroup("Dependent variable: Relative moral universalism (z-scored)", pattern(1 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) stats(N, label("N") fmt(%9.0fc))   booktabs fragment

